1. Field of the Invention
The present invention relates to a semiconductor memory device capable of performing a high speed read modify write (hereinafter referred to as an "RMW") operation aimed at a z-buffer for performing hidden-surface processing in the field for example of three dimensional computer graphics (hereinafter referred to as "3DCG").
2. Description of the Related Art
In recent years, high speed, large capacity memories, for example, a clock synchronization (synchronous) dynamic random access memories (DRAM) and a run-bus specification type have appeared.
Further, the field of 3DCG is rapidly spreading due to the improvement of the performances of personal computers, family computer game machines, etc. on the one hand and demands for higher speed and larger capacity memory than the past as the image memory for 3DCG.
For one application of an image memory, there are a frame buffer for storing drawing data and a z-buffer for storing a z-coordinate necessary for performing the hidden-surface processing indispensable for 3DCG.
In hidden-surface processing, polygonal drawing information referred to as polygons is generated. The size of the z-coordinate is compared with the periphery to calculate whether the polygon exists before or after other polygons, and processing of a drawing image is carried out by the polygons existing before the other polygon.
Accordingly, in the z-buffer for storing the z-coordinate, it is necessary to read the z-address of each polygon and perform the write modification after comparison with the other z-address. The operation thereof is basically an RMW operation.
FIG. 1 is a block diagram of a related art clock synchronization type memory.
In the figure, reference numeral 20 denotes a memory array, 22 an address decoder, 24 a register for temporarily holding an input signal of the address decoder 22, 26 an input buffer, and 28 an output buffer. Further, ADD represents an address signal, R/W-Data represents input/output data, and OE-cnt. represents an output control signal.
At present, in a generally commercially available general purpose memory, the same terminals are used for input/output of the data to and from the memory array 20 for decreasing the number of pins of the package as shown in FIG. 1, and the input and output of the data is switched by an output control signal OE-cnt. Namely, the input buffer 26 and the output buffer 28 are connected in parallel in inverse directions. The output buffer 28 is not operated when there is no input of the output control signal OE-cnt.
FIG. 2 is a flowchart of the operation when making general purpose memory perform an RMW operation for performing the hidden-surface processing of 3DCG.
In the figure, symbols A0, A1, denote address numbers in the memory array. The address signal ADD in the command is decoded (Ad-Dec) for every clock signal CLK with respect to the memory cell of this address number and output (D-out) after the stored data is read out (mem-R). After this data output, the z-address is subjected to the comparison processing in the next several clock sections, and the write modification to an original address in the memory is carried out. This RMW operation is continuously repeated in units of several addresses while shifting each address by one pulse each by the clock signal CLK.
In actuality, about three clocks are enough for the comparison processing per se, but in this illustrated example, continuous processing is carried out in units of six addresses. Further, as described above, it is necessary to use the same terminals for input/output, shift the output buffer 28 to the non-operating state by the output control signal OE-cot. at the switching thereof, and guarantee a high input impedance, therefore eight clock sections are required until the write modification from the data output is carried out in each address. For this reason, when viewing this from the command, as illustrated, a waiting section (in this case, 4 clocks worth) becomes necessary in the period of from R5 to W0, and the efficiency of RMW is bad.
In order to shorten the waiting section of this command, it can be considered too to make the address unit to be continuously processed small and shorten the clock section until the write modification from the data output of each address is carried out, but the number of times of switching of the output buffer 28 will be increased by this. For this reason, there is a limit in also the shortening of the command waiting section, and the control becomes complex if the input/output terminal is frequently switched.
In order to avoid this command waiting time, as shown in FIG. 3, the commonly used input/output pin can be separated.
When this separated input/output type memory is used for the RMW operation, as shown in the timing chart of FIG. 4, the waiting section of a command can be eliminated.
In a memory having the configuration shown in FIG. 3, it suffers from the disadvantage that the number of pins is increased, thus it was not practical, but a great increase of the bit width has become possible by the memory/logic mixing process in recent years, therefore the efficiency of the RMW can be enhanced to a certain extent by using this type of memory.
However, even if this method is adopted, as shown in FIG. 4, the input of the address signal is made common at the time of reading and writing of the data so as to suppress an increase in the number of pins, therefore the read/write operation of data still takes two clock sections and, thus, in this meaning, it does not lead to a drastic enhancement of efficiency of a RMW.
Namely, when it is desired to further improve the drawing performance of 3DCG, the fact that a plurality of clock sections are required for every read/write operation of the data becomes a major obstacle.